import { reqSearchInfo } from "@/api";

const actions = {
  // 注意，actions里面是可以有第二个参数，方便dispatch传递过来
  async searchInfo({ commit }, params) {
    const result = await reqSearchInfo(params);
    console.log(result.data);
    if (result.code == 200) {
      commit("SearchInfo", result.data);
    }
  },
};

const mutations = {
  SearchInfo(state, searchInfo) {
    state.searchInfo = searchInfo;
  },
};

// 会对state中的属性进行计算然后返回，有点像计算属性，目的是为了生成新的属性
const getters = {
  /**
   * 原来在getters里面的函数会配有当前state，这样就方便从参数中拿了，而不用this.state
   * 有可能没有网络，那么state.searchInfo.goodsList就是undefined，那么此时就返回个
   * 空数组方便给前台展示----表示没有返回到数据而不是undefined直接报错
   * (1) 要尽可能想到所有情况，避免可能报错的地方然后用用户能看得懂的方式来展示
   * */
  goodsList(state) {
    return state.searchInfo.goodsList || [];
  },
  trademarkList(state) {
    return state.searchInfo.trademarkList || [];
  },
  attrsList(state) {
    return state.searchInfo.attrsList || [];
  },
};

const state = {
  //  count:1
  searchInfo: {},
};

export default {
  actions,
  mutations,
  getters,
  state,
};
